home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / ibus / component.py < prev    next >
Encoding:
Python Source  |  2009-11-05  |  4.3 KB  |  131 lines

  1. # vim:set et sts=4 sw=4:
  2. #
  3. # ibus - The Input Bus
  4. #
  5. # Copyright (c) 2007-2008 Huang Peng <shawn.p.huang@gmail.com>
  6. #
  7. # This library is free software; you can redistribute it and/or
  8. # modify it under the terms of the GNU Lesser General Public
  9. # License as published by the Free Software Foundation; either
  10. # version 2 of the License, or (at your option) any later version.
  11. #
  12. # This library is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. # GNU Lesser General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU Lesser General Public
  18. # License along with this program; if not, write to the
  19. # Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  20. # Boston, MA  02111-1307  USA
  21.  
  22. __all__ = (
  23.         "Component",
  24.     )
  25.  
  26. import dbus
  27. from exception import IBusException
  28. from serializable import *
  29. from enginedesc import *
  30. from observedpath import *
  31.  
  32. class Component(Serializable):
  33.     __gtype_name__ = "PYIBusComponent"
  34.     __NAME__ = "IBusComponent"
  35.     def __init__ (self, name="", description="", version="", license="", author="", homepage="", _exec="", textdomain=""):
  36.         super(Component, self).__init__()
  37.         self.__name = name
  38.         self.__description = description
  39.         self.__version = version
  40.         self.__license = license
  41.         self.__author = author
  42.         self.__homepage = homepage
  43.         self.__exec = _exec
  44.         self.__textdomain = textdomain
  45.         self.__observed_paths = []
  46.         self.__engines = []
  47.  
  48.     def get_name(self):
  49.         return self.__name
  50.  
  51.     def get_description(self):
  52.         return self.__description
  53.  
  54.     def get_version(self):
  55.         return self.__version
  56.  
  57.     def get_license(self):
  58.         return self.__license
  59.  
  60.     def get_author(self):
  61.         return self.__author
  62.  
  63.     def get_homepage(self):
  64.         return self.__homepage
  65.  
  66.     def get_exec(self):
  67.         return self.__exec
  68.  
  69.     def get_textdomain(self):
  70.         return self.__textdomain
  71.  
  72.     def get_observed_paths(self):
  73.         return self.__observed_paths[:]
  74.  
  75.     def get_engines(self):
  76.         return self.__engines[:]
  77.  
  78.     name        = property(get_name)
  79.     description = property(get_description)
  80.     version     = property(get_version)
  81.     license     = property(get_license)
  82.     author      = property(get_author)
  83.     homepage    = property(get_homepage)
  84.     _exec       = property(get_exec)
  85.     textdomain  = property(get_textdomain)
  86.     observed_paths = property(get_observed_paths)
  87.     engines     = property(get_engines)
  88.  
  89.     def add_observed_path(self, path):
  90.         self.__observed_paths.append(ObservedPath(path))
  91.  
  92.     def add_engine(self, name="", longname="", description="", language="", license="", author="", icon="", layout=""):
  93.         engine = EngineDesc(name, longname, description, language, license, author, icon, layout)
  94.         self.__engines.append(engine)
  95.  
  96.     def serialize(self, struct):
  97.         super(Component, self).serialize(struct)
  98.         struct.append (dbus.String(self.__name))
  99.         struct.append (dbus.String(self.__description))
  100.         struct.append (dbus.String(self.__version))
  101.         struct.append (dbus.String(self.__license))
  102.         struct.append (dbus.String(self.__author))
  103.         struct.append (dbus.String(self.__homepage))
  104.         struct.append (dbus.String(self.__exec))
  105.         struct.append (dbus.String(self.__textdomain))
  106.         struct.append (dbus.Array(map(serialize_object,self.__observed_paths), signature="v"))
  107.         struct.append (dbus.Array(map(serialize_object,self.__engines), signature="v"))
  108.  
  109.     def deserialize(self, struct):
  110.         super(Component, self).deserialize(struct)
  111.  
  112.         self.__name = struct.pop(0)
  113.         self.__description = struct.pop(0)
  114.         self.__version = struct.pop(0)
  115.         self.__license = struct.pop(0)
  116.         self.__author = struct.pop(0)
  117.         self.__homepage = struct.pop(0)
  118.         self.__exec = struct.pop(0)
  119.         self.__textdomain = struct.pop(0)
  120.  
  121.         self.__observed_paths = map(deserialize_object, struct.pop(0))
  122.         self.__engines = map(deserialize_object, struct.pop(0))
  123.  
  124. def test():
  125.     text = Component("Hello", "", "", "", "", "", "", "")
  126.     value = serialize_object(text)
  127.     text=  deserialize_object(value)
  128.  
  129. if __name__ == "__main__":
  130.     test()
  131.